不能吃。
今天來看看Laravel的模板引擎——Blade。用到Blade的檔案副檔名為blade.php
,儲存在 resources/views 資料夾中。Blade語法會被解析為PHP程式碼使用,在Blade模板中不會看到原生的PHP程式碼,Blade也支援自訂指令。
使用時可以建立一個基礎模板,再繼承或引入其他模板進來,把頁面做成模組化的樣子,就不需要每個頁面都寫一遍會重複用到的部分,改的時候也不需要一個一個檔案開啟來改:)
Blade註解的語法為{{-- --}}
,寫出來的註解不會出現在HTML上面。
和一般學的程式語言一樣,該有的都有XDDDD
@if ($condition)
相當於<?php if ($condition): ?>
,其他@elseif
、@else
、@endif
也相當於在PHP的用法。
@unless
和if相反,相當於<?php if (!$condition): ?>
,也就是否定用法。
@switch
相當於PHP中的switch,同樣是在前面加上@變成@switch
、@case
、@break
、@default
以及 @endswitch
。
和流程控制一樣,每個迴圈也有對應的語法。
@for ($i = 0; $i < 10; $i++)
<p>{{ $i }} time.</p>
@endfor
@while (true)
<p>looping...</p>
@endwhile
Blade也有提供一個變數$loop
,可以取得在迴圈時的有用資訊。
也有個語法提供開發者在View上面使用PHP:
@php
$i = 1;
@endphp
在剛剛for loop可以看到Blade顯示資料的方式是用四個花括號 {{ }}
,這種寫法可以直接避免XSS攻擊。如果不想要被跳脫處理,語法改成{!! !!}
。
不過這樣的做法會有個問題,便是很多JavaScript框架也會使用花括號作為表達式。如果是要給JavaScript框架用的,我們就可以在前方加上@變成 @{{ }}
,Blade在解析的時候就會跳過它直接把 @{{ }}
解析成HTML的一部份:)
既然講到JavaScript框架,明天就來試試:)